Spills, Fills, and Kills An Architecture for Reducing Register-Memory Traffic

نویسندگان

  • Mattan Erez
  • Brian P. Towles
  • William J. Dally
چکیده

In a typical integer application, 40% of all memory references are generated by the compiler to: save and restore register values at procedure boundaries, pass parameters, and handle register allocation failures. We remove these compiler memory references by augmenting a conventional architecture with a spill name space and separate spill, fill, and kill instructions to access this space. These instructions facilitate compiler name generation while allowing the hardware to take advantage of two key properties of compiler references. First, there is great locality in compiler references and a 128-entry spill store is able to capture over 99% of all spills and fills. Second, spills and fills use a simple addressing mode that permits addresses to be resolved in the decode stage of the pipeline, increasing ILP. The combination of a reduction in memory traffic and an ILP increase results in speedups of up to 40%.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Fine-Grain Stacked Register Allocation for the Itanium Architecture

The introduction of a hardware managed register stack in the Itanium Architecture creates an opportunity to optimize both the frequency in which a compiler requests allocation of registers from this stack and the number of registers requested. The Itanium Architecture specifies the implementation of a Register Stack Engine (RSE) that automatically performs register spills and fills. However, if...

متن کامل

Code Size Reduction in Embedded Systems with Redesigned ISA for RISC Processors

Reducing the size of a program is a major goal in modern embedded systems. Large code occupies more space in the Chip and also causes higher power consumption because of increased memory traffic. In this paper, a revised architecture is proposed for embedded processors by replacing the Load-store Architecture with Register-Memory Architecture for selected instructions. Analysis of RISC object c...

متن کامل

Methods of Reducing the Number of Effective ODs in Order to Solve Traffic Equilibrium Problem in Real Life Networks

Solving traffic equilibrium problem, or “traffic assignment”, as the last step in Transportation Planning, distributes OD trip demands of a transportation network over the network links with regard to Traffic Equilibrium Law, and estimates the link flows. In formulations of traffic equilibrium which are based on path saving, the memory consumption is considerably affected by the number of effct...

متن کامل

Methods of Reducing the Number of Effective ODs in Order to Solve Traffic Equilibrium Problem in Real Life Networks

Solving traffic equilibrium problem, or “traffic assignment”, as the last step in Transportation Planning, distributes OD trip demands of a transportation network over the network links with regard to Traffic Equilibrium Law, and estimates the link flows. In formulations of traffic equilibrium which are based on path saving, the memory consumption is considerably affected by the number of effct...

متن کامل

Runtime Register Allocation

The use of registers instead of memory operands is an effective performance enhancement as well as a power saving mechanism, but compilers still cannot allocate many of the memory references of a program into registers, for two fundamental reasons unrelated to the size of the register file: (1) dynamically varying load/store operand addresses, and (2) inherent limitations of compile time alias ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000